# -*- coding: utf-8 -*-

"""
DateTime   : 2020/12/13 17:11
Author     : ZhangYafei
Description: 名字管理系统
要求：
    打印系统信息， 比如：欢迎使用XX系统...
    用列表存储用户的名字
    循环执行
        用户可以选择执行具体的操作
            名字的添加、删除、修改、查询操作
            按'q'选择退出
    打印退出信息，比如：欢迎下次再来！
"""
# 打印系统信息
print('=' * 38)
print('欢迎使用名字管理系统V0.1'.center(30))
print('=' * 38)

# 创建一个列表，存放名字信息
name_list = []

# 开启循环
while True:
    # 1. 打印系统功能，获取用户输入信息
    print('系统功能：1. 添加名字 2. 修改名字 3. 查询名字 4. 删除名字 q. 退出')
    choice = input('请选择：')
    if choice == '1':
        # 添加名字
        name = input('请输入要添加的名字【按 0 返回上一级】：')
        if name == '0':
            continue
        elif name in name_list:
            print('这个名字已经添加过了！')
        else:
            name_list.append(name)
            print(f'{name} 添加成功')
    elif choice == '2':
        # 修改名字
        while True:
            old_name = input('请输入要修改的原名字【按 0 返回上一级】：')
            if old_name == '0':
                break
            if old_name not in name_list:
                print('原名字不存在，请重新输入')
                continue
            new_name = input('请输入要修改的新名字：')
            # 找到旧名字的索引
            index = name_list.index(old_name)
            name_list[index] = new_name
            print(f'{new_name} 名字修改成功!')
            break
            # 在旧名字所在位置插入新名字
            # name_list.insert(index, new_name)
            # 将旧名字删除
            # name_list.remove(old_name)
    elif choice == '3':
        # 查询名字
        while True:
            count = len(name_list)
            print('1. 查询一个名字【根据索引查询】 2. 查询一个名字是否存在 3. 查询所有名字 0. 返回上一级')
            user_input = input('请选择：')
            if user_input == '1':
                index = input(f'请输入查询的索引【0 - {count}】：')
                if index.isdecimal():
                    index = int(index)
                else:
                    print('您输入的数据类型有误，请重新输入')
                    continue
                if index < count:
                    print(f'索引为{index}时 查询到的名字为 {name_list[index]}')
                    break
                else:
                    print('您输入的索引超出范围，请重新输入')
                    continue
            elif user_input == '2':
                name = input(f'请输入查询的名字：')
                if name in name_list:
                    print(f'名字 {name} 存在')
                else:
                    print(f'名字 {name} 不存在')
                break
            elif user_input == '3':
                print('名字列表为：\n\t', end='')
                for index, name in enumerate(name_list):
                    print(f'{index}：{name}', end=' ')
                print()
                break
            elif user_input == '0':
                break
            else:
                print('您的输入有误，请重新输入')
                continue
    elif choice == '4':
        # 删除名字
        while True:
            name = input('请输入要删除的名字【按 0 返回上一级】：')
            if name == '0':
                break
            if name not in name_list:
                print('名字不存在，请重新输入')
                continue
            # 删除名字
            name_list.remove(name)
            # del name_list[1]
            # name_list.pop(1)
            print(f'{name} 已删除')
            break
    elif choice == 'q':
        print('欢迎下次再来使用！祝您生活愉快！')
        break
    else:
        print('您的输入有误，请重新输入！')

